
$(function(){
	
	var labelTable = $('#labelTable').DataTable({
		dom: '<"top"fl<"clear">>rt<"bottom"ip<"clear">>',
		lengthMenu: [10, 25, 50, 75, 100],
		pageLength: 10,
		language: dtlanguage,
		ordering: true,
		order: [[1,'desc']],//表示初期第6列降序排序
		processing: true,
		serverSide: true,
		ajax: {
			url: 'system/label/getList',
			type: 'get',
			dataType: 'json',
			// 传给服务器的数据，可以添加我们自己的查询参数
            data: function (param) {
                var data = {
                	draw: param.draw,
                	search: param.search.value,
                	limit: param.length,
                	offset: param.start,
                	sort: param.columns[param.order[0].column].data,
                	isDesc: param.order[0].dir==='desc'
                }
                console.log(data);
                return data;
            },
            //预先处理服务器端返回的数据，修改成DT能用格式 draw、recordsTotal、recordsFiltered、data。
            dataFilter: function(text, type){
            	if(!isEmpty(text)){
            		var json = JSON.parse(text);//字符串转json
            		if (json.success) {
            			var qbean = json.result;
                    	var data = {
                    		draw: json.other,
                    		recordsTotal: qbean.itemCount,
                    		recordsFiltered: qbean.itemCount,
                    		data: qbean.result
                    	}
                    	console.log(data);
                    	text = JSON.stringify(data);//json转字符串
            		}
            	}
            	return text;//返回字符串
            },
            //用于处理服务器端返回的数据。 dataSrc是DataTable特有的
            dataSrc: function(data){
            	if(data.data==null){
            		return '';
            	}else {
            		return data.data;
            	}
            }
		},
	
		rowId: 'labelId',
		columns: [
			{
				data: 'label',
				title: '标签名',
				defaultContent: '--',
				orderable: false,
				render: shotContent
			},{
				data: 'createTime',
				title: '创建时间',
				defaultContent: '--',
				orderable: true,
				render: shotContent
			}
		],
		columnDefs: [
			{
				targets: 2,
				title: '操作',
				orderable: false,
				render: function (data, type, row, meta) {
					if(superAdmins.indexOf('<'+row.labelId+'>')==-1){
						return [
					        '<button class="removeBtn btn btn-sm btn-danger" data-label="'+row.labelId+'">',
					            '<i class="fa fa-trash-o"></i>&nbsp;删除',
					        '</button>'
					    ].join('');
					}else {
						return '--';
					}
                }
			}
		]
	});
	
	//删除
	$('#labelTable tbody').on( 'click', 'button.removeBtn', function () {
    	var labelId = $(this).data('label');
		confirm("确定删除吗？", "删除后将无法恢复！", function (isConfirm) {
            if (isConfirm) {
        		del('system/label/delLabel/'+labelId, function(data){
        			if(data.success){
        				$.message({message:'删除成功', type:'success'});
        				labelTable.ajax.reload(null, false);
        			}else {
        				spop(data.result, 'error');
        			}
        		});
            } else {
                //after click the cancel
            }
        }, {confirmButtonText: '删除', cancelButtonText: '取消'});
    });
	
	//弹出创建标签表单
	$('#createLabel').click(function(){
		$('#label').val('');
		$('#label-modal').modal('show');
	});
	//创建标签
	$('#label-form').submit(function(){
		return false;
	});
	$('#label-save-btn').click(function(){
		var label = $("#label").val();
		if(label==null || typeof(label) == "undefined"){
			$("#label-label").html("<code>*请输入标签名*</code>");
			$("#label").focus();
			return false;
		}
		label = label.replace(/(^\s*)|(\s*$)/g, "");
		if(label==""){
			$("#label-label").html("<code>*请输入标签名*</code>");
			$("#label").focus();
			return false;
		}
		
		put('system/label/addLabel', function(data){
			if(data.success){
				$.message({message:'标签创建成功', type:'success'});
				$('#label').val('');
				$('#label-modal').modal("hide");
				labelTable.ajax.reload(null, false);
			}else {
				spop(data.result, 'error');
			}
		}, {
			label: label.trim()
		});
	});
});


/**
 * 表格内容过长
 * @param data
 * @param type
 * @param row
 * @param meta
 * @returns
 */
function shotContent(data, type, row, meta) {
    return type === 'display' && data.length > 25 ?
    '<span title="' + data + '">' + data.substr(0, 23) + '...</span>' : data;

}